home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / libs / x / xview / xview3.004 / xview3 / usr / openwin / include / pixrect / cg9var.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-05-30  |  2.5 KB  |  98 lines

  1. /* @(#)cg9var.h    1.10 90/03/22 SMI */
  2.  
  3. /* Copyright (c) 1989 by Sun Microsystems, Inc.  */
  4.  
  5. /*
  6.  *    CG9 Header File
  7.  *    Describe "Private Data" of CG9 Pixrect,  also external
  8.  *    references to pixrect operation
  9.  */
  10.  
  11. #ifndef    cg9var_DEFINED
  12. #define    cg9var_DEFINED
  13.  
  14. #ifndef SVR4
  15. #include    <sundev/cg9reg.h>
  16. #endif SVR4
  17. #include    <pixrect/memvar.h>
  18. #ifndef SVR4
  19. #include    <sunwindow/cms.h>    /* colormapseg */
  20. #else
  21. #include <sys/cms.h>
  22. #endif SVR4
  23.  
  24. /* description of single CG9 frame buffer */
  25.  
  26. struct cg9fb {
  27.     short            group;    /* plane group implemented */
  28.     short            depth;    /* depth, bits */
  29.     struct mprp_data    mprp;    /* memory pixrect data */
  30. };
  31.  
  32. #define    CG_TYPE            3    /* for dev_specific stamp of fb.type */
  33. #define    CG_SIZE            4    /* for dev_specific stamp of fb size */
  34. #define    CG9_NFBS        3    /* number of frame buffers in a CG9 */
  35.  
  36. /*  CG9  Pixrect private data */
  37.  
  38. struct cg9_data {
  39.     struct mprp_data    mprp;    /* memory pixrect simulator */
  40.     int            flags;    /* misc. flags */
  41.     int            planes;    /* current group and mask */
  42.     int            fd;    /* file descriptor */
  43.     short            active;    /* active fb no. */
  44.     struct    cg9_control_sp    *ctrl_sp;
  45.     struct    cg9fb        fb[CG9_NFBS];    /* frame buffer info */
  46.     int            windowfd;    /* if 8-bit indexed pw */
  47.     struct    colormapseg    cms;        /* if 8-bit indexed pr */
  48.     int            real_windowfd;    /* for dblbuf hack */
  49. };
  50.  
  51. /* useful macros */
  52. #define    cg9_d(pr)    ((struct cg9_data *) ((pr)->pr_data))
  53.  
  54. #define CG9_PR_TO_MEM(src, mem)                        \
  55.     if (src && src->pr_ops != &mem_ops)                    \
  56.     {                                    \
  57.     mem.pr_ops      = &mem_ops;                    \
  58.     mem.pr_size     = src->pr_size;                    \
  59.     mem.pr_depth    = src->pr_depth;                \
  60.     mem.pr_data     = (char *) &cg9_d(src)->mprp;            \
  61.     src             = &mem;                        \
  62.     }
  63.  
  64. #define    CG9_PR_TO_MEM32(pr, mem32_pr, mem32_pr_data)            \
  65.     if (pr && pr->pr_ops != &mem_ops)                    \
  66.     {                                    \
  67.     mem32_pr.pr_ops = &mem32_ops;                    \
  68.     mem32_pr.pr_size = pr->pr_size;                    \
  69.     mem32_pr.pr_depth = pr->pr_depth;                \
  70.     mem32_pr_data.mprp = cg9_d(pr)->mprp;                \
  71.     mem32_pr_data.plane_group = cg9_d(pr)->fb[cg9_d(pr)->active].group;\
  72.     mem32_pr_data.fd = cg9_d(pr)->fd;                \
  73.     mem32_pr_data.windowfd = cg9_d(pr)->windowfd;            \
  74.     mem32_pr_data.cms = cg9_d(pr)->cms;                \
  75.     mem32_pr.pr_data = (char *) &mem32_pr_data;            \
  76.     pr = &mem32_pr;                            \
  77.     }
  78.  
  79. extern struct pixrectops cg9_ops;
  80. int        cg9_putcolormap();
  81. int        cg9_putattributes();
  82. int        cg9_rop();
  83. int        cg9_ioctl();
  84.  
  85. #ifndef KERNEL
  86. Pixrect        *cg9_make();
  87. int        cg9_destroy();
  88. Pixrect        *cg9_region();
  89. int        cg9_getcolormap();
  90. int        cg9_getattributes();
  91. int        cg9_vector();
  92. int        cg9_get();
  93. int        cg9_put();
  94.  
  95. #endif    !KERNEL
  96.  
  97. #endif    cg9var_DEFINED
  98.